/*
* This file is a part of the open-eBackup project.
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
* If a copy of the MPL was not distributed with this file, You can obtain one at
* http://mozilla.org/MPL/2.0/.
*
* Copyright (c) [2024] Huawei Technologies Co.,Ltd.
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*/
#ifndef __MODULE_QUEUE_H__
#define __MODULE_QUEUE_H__

#include "ndmp_common.h"

typedef struct msg_data_s {
    int         message;    /* message that was produced */
    int         reason;     /* reason message was produced */
    char                text[512];      /* message reported by backend */
    NdmpConnection  connection; /* connection message was received on */
    struct msg_data_s* next;
    void            *body;
} MsgData;

typedef MsgData *MsgQueue;

void enqueue(MsgQueue *head, MsgData *data);
int dequeue(MsgQueue *head, MsgData *data);
int peek(MsgQueue *head, MsgData *data);

#endif /* __MODULE_QUEUE_H__ */

